﻿<p>The objectified relationship <em>IfcRelDefinesByType</em> defines the relationship between an object type and object occurrences. The <em>IfcRelDefinesByType</em> is a 1-to-N relationship, as it allows for the assignment of one type information to a single or to many objects. Those objects then share the same object type,
and the property sets and properties assigned to the object type.</p>

<p>The <em>IfcRelDefinesByType</em> links the object type definition with the object occurrence. Both may define properties by assigning an <em>IfcPropertySet</em>, including one or many subtypes of <em>IfcProperty</em> to either the object type or object occurrence, as shown in Figure 2.</p>

<p>There are several scenarios to define the same property set on the object type definition and object occurrence side:</p>
<ol>
<li>All properties for all object occurrences of a common object type have the same value - then only the object type definition has a property set assigned.</li>
<li>All properties for all object occurrences are different, that is there are no common property values for the object type definition - then each of the object occurrence has a property set assigned.</li>
<li>Some properties within the same property set have common values and are assigned to the object type definition and some are occurrence specific and assigned (with potentially different values) to the object occurrences - then:
<ul>
<li>The sum of all properties within a given property set applicable to an object occurrence is the union of properties assigned to the object type definition plus the properties assigned to the object occurrence.</li>
<li>If the object occurrence has a property with the same <em>IfcProperty.Name</em> in an <em>IfcPropertySet</em>, as the corresponding object type definition, then the occurrence property value overrides the type property value.</li>
</ul>
</li>
</ol>

<table border="0" cellpadding="0" cellspacing="0" summary="relationship usage">
<tr><td valign="top"><img src="../../../figures/ifcreldefinesbytype_fig-1.png" alt="instance diagram" border="0"></td></tr>
<td valign="top"><p class="figure">Figure 2 &mdash; Type definition relationships</p></td></tr>
</table>

<p>The following table provides an example of assigning</p>
<table border="1" cellpadding="2" cellspacing="2" summary="example for property assignment">
<tr valign="top">
<td><small><b>properties assigned to <em>IfcWall</em></b></small></td>
<td><small><b>properties assigned to <em>IfcWallType</em></b></small></td>
<td><small><b>resulting property value for individual wall</b></small></td>
</tr>
<tr valign="top">
<td><small><em>Pset_WallCommon</em></small></td>
<td><small><em>Pset_WallCommon</em></small></td>
<td> </td>
</tr>
<tr valign="top">
<td><em><small> - ExtendToStructure</small> = TRUE</em></td>
<td> </td>
<td><small>TRUE</small></td>
</tr>
<tr valign="top">
<td> </td>
<td><small><em> - ThermalTransmittance</em> = 0.375</small></td>
<td><small>0.375</small></td>
</tr>
<tr valign="top">
<td><small><em> - ExtendToStructure</em> = FALSE</small></td>
<td><small><em> - ExtendToStructure</em> = TRUE</small></td>
<td><small>FALSE</small></td>
</tr>
</table>

<blockquote class="history">
HISTORY&nbsp; New entity in IFC2x.
</blockquote>

<blockquote class="change-ifc2x4">
IFC4 CHANGE&nbsp; The attribute <em>RelatedObjects</em> had been demoted from the supertype <em>IfcRelDefines</em> to <em>IfcRelDefinesByType</em>.
</blockquote>
